-- Implementierung des Counter-Beispiels in
-- Objective VHDL

type counter is class
	class attribute value: integer;
	function status return integer;
	for signal, variable
		procedure count_up;
		procedure reset;
		procedure load (i: integer);
	end for;
end class counter;


type counter is class body
	function status return integer is
	begin
		return value;
	end;
	for signal, variable
		procedure count_up is
		begin
			load (value + 1);
		end;
		procedure reset is
		begin
			load (0);
		end;
	end for;
	for signal
		procedure load (i: integer) is
		begin
			value <= i;
		end;
	end for;
	for variable
		procedure load (i: integer) is
		begin
			value := i;
		end;
	end for;
end class body counter;